package com.ms.teapuesto.util;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;

public class NumberUtil {

    public static String nvl(BigDecimal origen, String result) {
        if (origen == null) return result;
        return String.valueOf(origen);
    }

    public static String nvl(String origen, String result) {
        if (origen == null) return result;
        return String.valueOf(origen);
    }

    public static BigDecimal returnIsNumber(String origen, String result) {
        if (origen == null) return new BigDecimal(result);
        if (NumberUtils.isNumber(origen)) return new BigDecimal(origen);
        return new BigDecimal(result);
    }

    public static BigDecimal number(String origen) {
        if (StringUtils.isBlank(origen)) return null;
        if (!NumberUtils.isNumber(origen.trim())) return null;
        return new BigDecimal(origen.trim());
    }

    public static BigDecimal nvl(BigDecimal origen) {
        if (origen==null) return BigDecimal.ZERO;
        return origen;
    }

    public static BigDecimal numberPorcentaje(String origen) {
        String x=origen.substring(0, origen.length() - 1);
        if(NumberUtils.isNumber(x.trim())){
            return new BigDecimal(x.trim());
        }
        return null;
    }

    public static String toFormat(BigDecimal value){
        if(value==null) return null;
        DecimalFormatSymbols unusualSymbols = new DecimalFormatSymbols();
        unusualSymbols.setDecimalSeparator('.');
        DecimalFormat format= new DecimalFormat("##############0.0#########", unusualSymbols);
        return format.format(value);
    }
}
